package com.sc.nft.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sc.nft.entity.MallMemberEquityTemplate;
import com.sc.nft.entity.dto.AdminMemberEquityTemplateDetailDTO;
import com.sc.nft.entity.dto.AdminMemberEquityTemplatePageDTO;
import com.sc.nft.entity.dto.MallMemberEquityTemplateDetailDTO;
import com.sc.nft.entity.vo.EditMemberEquityTemplateVO;
import com.sc.nft.entity.vo.MallMemberEquityTemplatePageVO;

import java.util.List;

/**
 * <p>
 * 商城会员权益模版 服务类
 * </p>
 *
 * @author author
 * @since 2024-03-29
 */
public interface MallMemberEquityTemplateService {

    /**
     * 获取商城会员权益模版列表(管理后台)
     *
     * @param mallMemberEquityTemplatePageVO
     * @return
     */
    Page<AdminMemberEquityTemplatePageDTO> getAdminMemberEquityTemplatePageDTO(MallMemberEquityTemplatePageVO mallMemberEquityTemplatePageVO);

    /**
     * 获取商城会员权益模版详情
     *
     * @param id
     * @return
     */
    AdminMemberEquityTemplateDetailDTO getAdminMemberEquityTemplateDetailDTO(Long id);

    /**
     * 添加或者编辑商城会员权益模版
     *
     * @param editMemberEquityTemplateVO
     */
    void edit(EditMemberEquityTemplateVO editMemberEquityTemplateVO);

    /**
     * 商城会员权益模版启用
     *
     * @param id
     */
    void enable(Long id);

    /**
     * 商城会员权益模版禁用
     *
     * @param id
     */
    void disable(Long id);

    /**
     * 通过id获取
     *
     * @param id
     * @return
     */
    MallMemberEquityTemplate getById(Long id);
    /**
     * 通过idList获取
     *
     * @param idList
     * @return
     */
    List<MallMemberEquityTemplate> getByIdList(List<Long> idList);

    /**
     * 获取所有已使用的权益模版
     *
     * @return
     */
    List<MallMemberEquityTemplate> templatesAlreadyUsed();

    /**
     * 获取商城会员权益模版详情
     *
     * @param id
     * @return
     */
    MallMemberEquityTemplateDetailDTO getAdminMallMemberTemplateDetailDTO(Long id);

}
